Many electronic devices use memory for storing data. For instance, computer systems typically contain large amounts of memory for storing applications and data. But computer systems may take forms other than the familiar desktop computer. For example, televisions and set-top-boxes may contain several microprocessors and memories for running a variety of applications. Along with the familiar menu navigation applications running on these systems, there may be applications for encoding and decoding video information. For example, a set-top-box may have an MPEG decoder application as well.
In many cases, a system, such as a set-top-box, may have separate subsystems for specific applications and those subsystems may utilize separate memories for their respective storage needs. For example, a system may comprise an MPEG encoder subsystem. The MPEG subsystem may use a digital signal processor (DSP) and a memory interfaced to the DSP. In this regard, data within the memory may be structured so as to make the encoding/decoding process as efficient as possible. For example, the data may be stored so that data corresponding to blocks of pixels may be accessed efficiently. The same system may have a simple microcontroller unit (MCU) for executing, for example, a menu application for performing tasks such as on screen menu navigation. The MCU may be interfaced to a memory other than the DSP memory described above. Like the DSP, the MCU may also structure data within the memory so as to run its own applications as efficiently as possible. For example, the MCU may prefer to access data in a linear manner.
The system cost for a system that uses separate memories for separate subsystems may be prohibitively expensive. Sharing memory among the various subsystems may be another solution. But this may result in less efficient access to memory and therefore may decrease the operating speeds of the various subsystems. Each subsystem may have different read/write requirements. For example, one subsystem may use an 8-bit read/write access, while another may use a 12-bit read/write access, and yet another may use a 16-bit read/write access. In addition each subsystem may have its own read/write timing requirements. Given these issues, an MPEG encoder, forced to access memory linearly, may require additional cycles to retrieve a block of pixels.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.